java JPA:从另一个对象访问对象返回null
我想从密钥访问上面的实体密钥
这种关系是:
规则包含一个术语规则。 每个TermRule包含一个规则和一个可变配置
只有VariableConfiguration包含一个变量
我想从TermRule中捕获变量
我试着这样做:
termRule.getVariableConfiguration().getVariable()
并接收空值
有可能得到一个项的变量吗
public class Rule extends PersistentObject {
private static final long serialVersionUID = 7852189080136935020L;
@Column (name ="NAME", nullable = false)
private String namerule;
@OneToMany(mappedBy = "rule", fetch = FetchType.LAZY)
private List<TermRule> termRule;
}
//getters and setters
public class TermRule extends PersistentObject implements Comparable<TermRule> {
private static final long serialVersionUID = 336244667983772321L;
@ManyToOne
@JoinColumn(name = "ID_RULE", referencedColumnName = "ID", nullable = false)
private Rule rule;
@OneToOne
@JoinColumn (name ="ID_VAR_CONF", referencedColumnName = "ID", nullable = true)
private VariableConfiguration variableConfiguration;
}
public abstract class VariableConfiguration extends PersistentObject {
private static final long serialVersionUID = -4967631633375881594L;
@ManyToOne
@JoinColumn(name = "ID_VARIAVEL", referencedColumnName = "ID", nullable = false)
private Variable variable;
@OneToOne (mappedBy= "variableConfiguration", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
private TermRule termRule;
}
@DiscriminatorValue("Triangle")
public class Triangle extends VariableConfiguration {
}
public class Variable extends PersistentObject {
private static final long serialVersionUID = -1172539974105845401L;
@Column (name = "NOME", nullable = false)
private String name;
@OneToMany (mappedBy= "variable", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
private List<VariableConfiguration> variableConfiguration;
}
共 (0) 个答案